From: Florian Müllner Date: Fri, 27 Mar 2020 15:33:48 +0000 (+0100) Subject: cldr2json: Do not overwrite existing files X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~751^2^2~39 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=da673639cac6d05cc588630465e7b994b529546f;p=gnome-shell.git cldr2json: Do not overwrite existing files We had various requests to improve existing OSK layouts, but haven't accepted them so far as any changes would be overridden when regenerating the layouts. However as the upstream layouts at http://www.unicode.org are extremely slow to update(*), we shouldn't block all improvements. So instead of letting the update script override all existing layouts, just make it import new layouts. (*) not their fault, as the android layouts are a downstream to Google https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1136 --- diff --git a/data/cldr2json/cldr2json.py b/data/cldr2json/cldr2json.py index 7d6d71792..49a3809cd 100755 --- a/data/cldr2json/cldr2json.py +++ b/data/cldr2json/cldr2json.py @@ -165,8 +165,12 @@ def convert_file(source_file, destination_path): return False destination_file = os.path.join(destination_path, xkb_name + ".json") - with open(destination_file, 'w', encoding="utf-8") as dest_fd: - json.dump(root, dest_fd, ensure_ascii=False, indent=2, sort_keys=True) + try: + with open(destination_file, 'x', encoding="utf-8") as dest_fd: + json.dump(root, dest_fd, ensure_ascii=False, indent=2, sort_keys=True) + except FileExistsError as e: + logging.info("File %s exists, not updating", destination_file) + return False logging.debug("written %s", destination_file)